//题目：找出数组中每一个元素的左边首次比这个元素小的数(单调栈)，若不存在输出-1
//例如：[3,4,2,7,5]，输出-1,3,-1,2,2
#include <iostream>
using namespace std;
const int N = 100010;
int stk[N] , tt; //tt是栈顶下标，stk是栈
int main()
{
    int n;
    cin >> n;
    for(int i = 0 ; i < n ; ++i)
    {
        int x;
        cin >> x;
        while(tt && stk[tt] > x) tt--;
        if(tt) cout << stk[tt] << " ";
        else cout << -1 << " ";
        stk[++tt] = x;
    }
    return 0;
}